/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.tesoreria.be;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.cip.esymons.general.be.Solicitante;

/**
 *
 * @author Gilmar Montoya
 */
@Entity
@Table(name = "tes_mensajes_solicitante")
@IdClass(MensajesSolicitantePK.class)
public class MensajesSolicitante implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "env_codigo", nullable = false, insertable = false, updatable = false)
    private long envCodigo;
    @Id
    @Column(name = "sol_codigo", nullable = false, insertable = false, updatable = false)
    private long solCodigo;
    @Column(name = "tme_fecha")
    @Temporal(TemporalType.DATE)
    private Date tmeFecha;
    @JoinColumn(name = "env_codigo", referencedColumnName = "env_codigo", nullable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private EnvioMensajes envioMensajes;
    @JoinColumn(name = "sol_codigo", referencedColumnName = "sol_codigo", nullable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Solicitante solicitante;

    public MensajesSolicitante() {
    }

    public Date getTmeFecha() {
        return tmeFecha;
    }

    public void setTmeFecha(Date tmeFecha) {
        this.tmeFecha = tmeFecha;
    }

    public EnvioMensajes getEnvioMensajes() {
        return envioMensajes;
    }

    public void setEnvioMensajes(EnvioMensajes envioMensajes) {
        this.envioMensajes = envioMensajes;
    }

    public Solicitante getSolicitante() {
        return solicitante;
    }

    public void setSolicitante(Solicitante solicitante) {
        this.solicitante = solicitante;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final MensajesSolicitante other = (MensajesSolicitante) obj;
        if (this.envCodigo != other.envCodigo) {
            return false;
        }
        if (this.solCodigo != other.solCodigo) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 47 * hash + (int) (this.envCodigo ^ (this.envCodigo >>> 32));
        hash = 47 * hash + (int) (this.solCodigo ^ (this.solCodigo >>> 32));
        return hash;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.tesoreria.be.MensajesSolicitante[envCodigo=" + envCodigo + ", solCodigo=" + solCodigo + "]";
    }

    /**
     * @return the envCodigo
     */
    public long getEnvCodigo() {
        return envCodigo;
    }

    /**
     * @param envCodigo the envCodigo to set
     */
    public void setEnvCodigo(long envCodigo) {
        this.envCodigo = envCodigo;
    }

    /**
     * @return the solCodigo
     */
    public long getSolCodigo() {
        return solCodigo;
    }

    /**
     * @param solCodigo the solCodigo to set
     */
    public void setSolCodigo(long solCodigo) {
        this.solCodigo = solCodigo;
    }
}
